<?php
require_once "../funciones.php";
require_once("../phpmailer/class.phpmailer.php"); //Libreria requerida para enviar el correo
$con = con_intranetpccom();
if($_SESSION['caweb']['autenticado']!="si" || $_SESSION['caweb']['username'] == ""){
   echo "No puedes Ingresar sin autenticarte o Sesion Terminada ActualiceS la pagina";
   exit;
}
switch ($_REQUEST['opc']) {
    case "1": //Guarda informacion
        $des = $_POST['des'];
        $des = sinSaltos($des);
        $sis = $_POST['sis'];
        //Si adjunta un archivo lo ubica en la carpeta asignada
        if($_FILES["archivo"]["name"] != ""){
            $nombre_tmp = $_FILES["archivo"]["tmp_name"];
            $nombre = time().".csv" ;
            if(!move_uploaded_file($nombre_tmp, "/var/www/html/caweb/requerimientos/$nombre"))
                    die("Error al subir el archivo");
        }
        else $nombre = "";
        $des = str_ireplace("'", " ", $des);
        
        //Si se trata de un soporte Help Desk
        if($sis  == 7){
            $interno = $_POST['interno'];

            //informacion del usuario que crea el requerimiento
            $sql = "select user_email,ciudad from usuarios where username = '{$_SESSION['caweb']['username']}'";
            $result = mysql_query($sql,$con) or die("Error en la consulta2 ".  mysql_error());
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario a quien asignar el requerimiento
                echo "Actualice la pagina y vuelva a intentar si se repite el error llame a Sistemas";
                exit;
            }
            $correoCrea = $result['user_email'];


            //Ubica informacion del usuario responsable del requerimiento
            $sql = "select username,user_email,ciudad from usuarios where estado = 'A' and grupo = 'Sistemas' and tecnico = 'S' and ciudad = 'BOG'";
            $result = mysql_query($sql,$con) or die("Error en la consulta2 ".  mysql_error());
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario a quien asignar el requerimiento
                echo "No existe usuario responsable del soporte para su Sucursal, comuniquese con Sistemas";
                exit;
            }
            $usrResponsable = $result['username'];
            $correoResponsable = $result['user_email'];
            $ciudad = $result['ciudad'];

            //Valida la informacion del interno que digita el usuario  
            $sql = "select interno,serial from {$_SESSION['caweb']['basededatos']}.seriales where interno = '$interno'";
            $result = mysql_query($sql,$con) or die("Error en la consulta seriales ".  mysql_error());
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario a quien asignar el requerimiento
                echo "El interno No $interno no existe";
                exit;
            }
            $serial = $result['serial'];

/****************************************************************************************************************************************/
            //CONEXION AL SERVIDOR GLPI
            $glpi = mysql_connect("190.144.43.212:5083", "caweb", "caweb") or die("No fue posible la conexion con el servidor GLPI");
            mysql_select_db("glpi", $glpi) or die("No fue posible usar la base de datos GLPI");

            //Se busca el codigo de la ubicacion del usuario a asignar el requerimiento
            $sql = "select ID from glpi_dropdown_locations where name = '$ciudad'";
            $result = mysql_query($sql, $glpi) or die("Error Consulta 3".  mysql_error()."<br/>".$sql);
            $locId = mysql_fetch_array($result);
            if(!is_array($locId)){ //control de existencias de la ubicacion
                echo "No existe la ubicacion $ciudad en el sistema GLPI";
                exit;
            }
            $locId = $locId['ID'];
            unset ($result);

            //Se ubica el ID del usuario que genera el requerimiento
            $sql = "select ID from glpi_users where name = 'caweb'";
            $result = mysql_query($sql, $glpi) or die("Error Consulta 4".  mysql_error()."<br/>".$sql);
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario que genera el Requerimiento
                echo "No existe usuario caweb en el sistema sistema GLPI";
                exit;
            }
            $usrCrea = $result['ID'];
            unset ($result);

            //Se ubica el ID del usuario al que se le asignara el requerimiento
            //Se busca con title = 1 por que ese sera siempre HelpDesk
            $sql = "select ID from glpi_users where location = $locId and title = 1";
            $result = mysql_query($sql, $glpi) or die("Error Consulta 4".  mysql_error()."<br/>".$sql);
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario que genera el Requerimiento
                echo "No existe usuario para la ubicacion $ciudad en el sistema GLPI";
                exit;
            }
            $usrRecibe = $result['ID'];
            unset ($result);

            //Valida que el equipo este inventariado en el sistam GLPI
            $sql = "select max(ID) as ID from glpi_computers where (otherserial = '$interno' or serial = '$serial') having ID is not null";
            $result = mysql_query($sql, $glpi) or die("Error Consulta 4".  mysql_error()."<br/>".$sql);
            $result = mysql_fetch_array($result);
            if(!is_array($result)){ //control de la existencia del usuario que genera el Requerimiento
                echo "Equipo no Inventreado por OCSInventory,consulte con soporte Tecnico";
                exit;
            }
            $computer = $result['ID'];
            unset ($result);

            //Crea el requerimiento en GLPI
            //FK_group = 1,priority = 3
            $sql = "insert into glpi_tracking(name,date,status,author,recipient,assign,FK_group,assign_group,device_type,computer,contents,priority,uemail)
                values ('Incidencia de {$_SESSION['caweb']['username']}',now(),'assign','$usrCrea','$usrRecibe','$usrRecibe','1','1','1','$computer','$des','3','$correoCrea')";
            $result = mysql_query($sql,$glpi);
            $glpId  = mysql_insert_id();

        }
        $con = con_intranetpccom();
        $sql = "insert into requerimientos(reqUsr,reqFec,reqDes,reqArc,sisId) values ('{$_SESSION['caweb']['username']}',now(),'$des','$nombre',{$_POST['sis']}) ";
        $result = mysql_query($sql,$con) or die("Error en la consulta1 ".  mysql_error());
        //optiene el valor del requerimiento
        $id  = mysql_insert_id($con);

        //Si se trata de un soporte Help Desk
        if($sis  == 7){
            //Se inserta un registro de solucion para que el usuario conozca que ha sucedido con el mismo
            $sql = "insert into solucionesRq(solRqUsr,solRqDes,solRqFec,reqId,estRqId,tipRqId) values ('$usrResponsable','Su incidencia se asigno a $usrResponsable',now(),'$id',5,1) ";
            //echo $sql."<br/>GLP $glpId SOS $id";
            $result = mysql_query($sql,$con) or die("Error en la consulta ".  mysql_error());
            //Se envia el correo
            $mail = new PHPMailer();
            $mail->From     = "analista1@pc.com.co";
            $mail->FromName = "Sistema S.O.S";

            $mail->AddAddress($correoResponsable);
            $mail->WordWrap = 50;                                   // Largo de las lineas
            $mail->IsHTML(true);                                    // Podemos incluir tags html
            $mail->Subject  =  "Asignacion Incidencia GLPI No. $glpId";
            $mail->Body     =  "Le ha sido asignado una incidencia, dar tramite en el sistema GLPI";
            $mail->AltBody  =  strip_tags($mail->Body);             // Este es el contenido alternativo sin html
            //$mail->AddAttachment("/resultados/resultado.csv");      // Ingresamos la ruta del archivo

            $mail->IsSMTP();
            $mail->Host       = "ssl://smtp.gmail.com";
            $mail->SMTPDebug  = 1;
            $mail->SMTPAuth   = true;
            $mail->Port       = 465;
            $mail->Username   = "analista1@pc.com.co";
            $mail->Password   = "leugim";
            $mail->Send();
            $id .= " S.O.S, No. $glpId GLPI";
        }


        echo "<script>
                alert('Se ha generado el requerimiento No. $id');
                window.location = \"../frentes/crearRq.php\";
              </script>";
        break;

    case "2": //Edita Informacion
        break;

    case "3": //Alimenta la Grilla de consulta
        $page = $_REQUEST['page']; // get the requested page
        $limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
        $sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
        $sord = $_REQUEST['sord']; // get the direction
        $fechaDesde = $_REQUEST['desde'];
        if($fechaDesde == "")
            $fechaDesde = "1988-01-01";
        $fechaHasta = $_REQUEST['hasta'];
        if($fechaHasta == "")
            $fechaHasta = "2100-12-31";
        $fechaHasta .= " 23:59:59";
        $reqId = $_REQUEST['reqId'];

        if(!$sidx) $sidx =1;
        $wh = "";
        $sql = "select  count(reqId) as count from requerimientos where ";
        $sql .= "reqFec between '$fechaDesde' and '$fechaHasta'";
        $sql .= "and reqUsr = '{$_SESSION['caweb']['username']}' ";
        $sql .= ($reqId != "")? "and reqId = $reqId " : "";
        $result = mysql_query($sql);
        $usrdata = mysql_fetch_array($result);
        $count = $usrdata['count'];

        if( $count >0 )
                $total_pages = ceil($count/$limit);
        else
                $total_pages = 0;
        //valida el limite de la consulta segun el numero de registros
        if ($page > $total_pages) $page=$total_pages;
                $start = $limit*$page - $limit;
        if ($start<0) $start = 0;

        //se construye la consulta principal
        $sql = "select  * from requerimientos req ";
        $sql .= "where reqFec between '$fechaDesde' and '$fechaHasta' ";
        $sql .= "and reqUsr = '{$_SESSION['caweb']['username']}' ";
        $sql .= ($reqId != "")? "and reqId = $reqId " : "";
        $sql .= " ORDER BY $sidx $sord LIMIT $start , $limit";
        $result = mysql_query($sql) or die("Error SLQ 3".  mysql_error().$sql);
        if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
            header("Content-type: application/xhtml+xml;charset=utf-8");
        } else {
            header("Content-type: text/xml;charset=utf-8");
        }
        $et = ">";
        echo "<?xml version='1.0' encoding='utf-8'?$et\n";
        echo "<rows>";
        echo "<page>".$page."</page>";
        echo "<total>".$total_pages."</total>";
        echo "<records>".$count."</records>"; // be sure to put text data in CDATA
        while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
            echo "<row id='".$row['reqId']."'>";
            echo "<cell>". strtoupper($row['reqId'])."</cell>";
            echo "<cell>". strtoupper($row['reqFec'])."</cell>";
            echo "<cell>". utf8_encode(htmlspecialchars($row['reqDes']))."</cell>";
            $sql = "select solRqDes,est.estRqNombre, est.estRqId from solucionesRq sol ";
            $sql .=  "inner join estadosRq est on est.estRqId = sol.estRqId ";
            $sql .=  "where est.estRqNivel = 0 and sol.solRqId in (select max(reqAux.solRqId) from solucionesRq reqAux where reqAux.reqId = ".$row['reqId'].")";
            $result1 = mysql_query($sql) or die("Error SQL: ".  mysql_error());
            $row1 = mysql_fetch_array($result1,MYSQL_ASSOC);
            $respuesta = "";
            if(is_array($row1)){
                    $estado = $row1['estRqNombre'];
                    //if($row1['estRqId'] == 3) //Solo despliega descripcion para estados concluidos
                        $respuesta = $row1['solRqDes'];
            }
            else{
                $estado = "Creado";
            }
            echo "<cell>". strtoupper($estado)."</cell>";
            echo "<cell>". utf8_encode(htmlspecialchars($respuesta))."</cell>";
            echo "</row>";
        }
        echo "</rows>";
        break;

        
    default:
        break;
}


function Strip($value){
	if(get_magic_quotes_gpc() != 0)
  	{
    	if(is_array($value))
			if ( array_is_associative($value) )
			{
				foreach( $value as $k=>$v)
					$tmp_val[$k] = stripslashes($v);
				$value = $tmp_val;
			}
			else
				for($j = 0; $j < sizeof($value); $j++)
        			$value[$j] = stripslashes($value[$j]);
		else
			$value = stripslashes($value);
	}
	return $value;
}
function array_is_associative ($array){
    if ( is_array($array) && ! empty($array) ){
        for ( $iterator = count($array) - 1; $iterator; $iterator-- ){
            if ( ! array_key_exists($iterator, $array) ) { return true; }
        }
        return ! array_key_exists(0, $array);
    }
    return false;
}


//funcion para eliminar los saltos de linea
function sinSaltos($parrafo){
    $consalto = split("\n", $parrafo);
    $texto = "";
    foreach($consalto as $frase){
        $texto .= trim($frase)." ";
    }
    return trim($texto);
}
?>
